import pandas as pd
from plotly import express as px, io as pio
pd.options.plotting.backend = 'plotly'
pio.renderers.default = 'plotly_mimetype+notebook_connected'Análise dos Dados
TODO: Separar o que foi feito no dataset bruto do depois das mudanças
Análises de dados e investigações no Dataset bruto
Descrição de como foi feita a análise(perguntas que foram feitas para a base, possíveis pontos de limpeza, versões do python e bibliotecas)
essa é a parte que viemos fazendo até agora, identificando o que nos será útil da base que escolhemos
output_file = '../data/cursos.csv.zip'
df = pd.read_csv(output_file, dtype={'cod_municipio': int})
df| ano | regiao | uf | cod_municipio | nome_municipio | capital | latitude | longitude | cod_area | area | curso | rede_publica | presencial | bacharel | ingressantes | ingressantes_fem | concluintes | concluintes_fem | frac_ingressantes | frac_concluintes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2010 | Norte | RO | 1100049 | Cacoal | False | -11.4343 | -61.4562 | 51 | Ciências biológicas e correlatas | Biologia | False | True | True | 21 | 13 | 6 | 4 | 0.619048 | 0.666667 |
| 1 | 2010 | Norte | RO | 1100049 | Cacoal | False | -11.4343 | -61.4562 | 71 | Engenharia e profissões correlatas | Gestão ambiental | False | True | False | 61 | 26 | 27 | 12 | 0.426230 | 0.444444 |
| 2 | 2010 | Norte | RO | 1100049 | Cacoal | False | -11.4343 | -61.4562 | 71 | Engenharia e profissões correlatas | Gestão ambiental | False | False | False | 88 | 48 | 10 | 5 | 0.545455 | 0.500000 |
| 3 | 2010 | Norte | RO | 1100064 | Colorado do Oeste | False | -13.1174 | -60.5454 | 71 | Engenharia e profissões correlatas | Gestão ambiental | True | True | False | 59 | 33 | 23 | 11 | 0.559322 | 0.478261 |
| 4 | 2010 | Norte | RO | 1100122 | Ji-Paraná | False | -10.8777 | -61.9322 | 71 | Engenharia e profissões correlatas | Gestão ambiental | False | False | False | 109 | 52 | 32 | 15 | 0.477064 | 0.468750 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 17974 | 2019 | Centro-Oeste | DF | 5300108 | Brasília | True | -15.7795 | -47.9297 | 71 | Engenharia e profissões correlatas | Gestão ambiental | False | False | False | 25 | 13 | 6 | 3 | 0.520000 | 0.500000 |
| 17975 | 2019 | Centro-Oeste | DF | 5300108 | Brasília | True | -15.7795 | -47.9297 | 71 | Engenharia e profissões correlatas | Gestão ambiental | False | False | False | 17 | 7 | 9 | 3 | 0.411765 | 0.333333 |
| 17976 | 2019 | Centro-Oeste | DF | 5300108 | Brasília | True | -15.7795 | -47.9297 | 71 | Engenharia e profissões correlatas | Gestão ambiental | False | False | False | 24 | 8 | 3 | 2 | 0.333333 | 0.666667 |
| 17977 | 2019 | Centro-Oeste | DF | 5300108 | Brasília | True | -15.7795 | -47.9297 | 71 | Engenharia e profissões correlatas | Gestão ambiental | False | False | False | 48 | 14 | 20 | 2 | 0.291667 | 0.100000 |
| 17978 | 2019 | Centro-Oeste | DF | 5300108 | Brasília | True | -15.7795 | -47.9297 | 54 | Matemática e estatística | Estatística | True | True | True | 88 | 23 | 23 | 6 | 0.261364 | 0.260870 |
17979 rows × 20 columns
Ao longo do tempo (lineplot)
Ingressantes & Concluintes Femininas
cols = ['ano', 'ingressantes_fem', 'concluintes_fem']
df_ing_conc_per_year = df[cols].groupby(by=['ano']).sum()
df_ing_conc_per_year = df_ing_conc_per_year.melt(
value_vars=['ingressantes_fem', 'concluintes_fem'],
value_name='alunas', ignore_index=False)
df_ing_conc_per_year| variable | alunas | |
|---|---|---|
| ano | ||
| 2010 | ingressantes_fem | 31650 |
| 2011 | ingressantes_fem | 36712 |
| 2012 | ingressantes_fem | 43211 |
| 2013 | ingressantes_fem | 45463 |
| 2014 | ingressantes_fem | 46855 |
| 2015 | ingressantes_fem | 42820 |
| 2016 | ingressantes_fem | 40108 |
| 2017 | ingressantes_fem | 38112 |
| 2018 | ingressantes_fem | 35387 |
| 2019 | ingressantes_fem | 37935 |
| 2010 | concluintes_fem | 12286 |
| 2011 | concluintes_fem | 13956 |
| 2012 | concluintes_fem | 16219 |
| 2013 | concluintes_fem | 16867 |
| 2014 | concluintes_fem | 16736 |
| 2015 | concluintes_fem | 16640 |
| 2016 | concluintes_fem | 16291 |
| 2017 | concluintes_fem | 15930 |
| 2018 | concluintes_fem | 14413 |
| 2019 | concluintes_fem | 14809 |
px.line(df_ing_conc_per_year, y='alunas', color='variable')Dispersão (scatterplot)
Por Ano
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='ano', opacity=.75, size='concluintes_fem')Por Região
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='regiao', opacity=.75, size='concluintes_fem')Por Unidade Federativa (UF)
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='uf', opacity=.75, size='concluintes_fem')Por se é Capital
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='capital', opacity=.75, size='concluintes_fem')Por Area STEM
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='area', opacity=.75, size='concluintes_fem')Por se é Rede Pública
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='rede_publica', opacity=.75, size='concluintes_fem')Por se é Presencial
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='presencial', opacity=.75, size='concluintes_fem')Por se é Bacharelado
px.scatter(df, x='frac_ingressantes', y='frac_concluintes', color='bacharel', opacity=.75, size='concluintes_fem')Histograma
Ingressantes
df['frac_ingressantes'].hist(bins=5)Concluintes
df['frac_concluintes'].hist()